Verilog-A 语言概述

什么是 Verilog-A / Verilog-AMS

⚠️ Verilog-A 不是 Verilog:Verilog/VHDL 描述离散逻辑信号;Verilog-A 描述连续电压/电流,无法综合,只能用于仿真建模。

组成关系

Verilog-AMS(混合信号)
 ├── Verilog(数字域,事件驱动)
 └── Verilog-A(模拟域,连续时间)
      └── 共享 Natures / Disciplines / 模拟算子

Verilog-A 能做什么

  1. 自顶向下的设计流程:顶层模块未完成电路时即可用模型验证系统。
  2. 项目可行性分析:关键模块参数要求验证,避免人力浪费。
  3. 系统级建模与仿真:高层抽象描述模块行为,大规模系统仿真速度远快于 SPICE。
  4. 快捷验证:比 SPICE 模型简单高效(书中例子:SPICE 跑 3 天的顶层,Verilog-A 30 分钟出结果)。
  5. 提供 IP 模型:给客户试用而不泄露电路细节。
  6. 板级/芯片级系统模型:各层次统一描述。

与 SPICE 模型对比

维度 SPICE 模型 Verilog-A/AMS
精确度 高(可 400+ 参数) 取决于抽象层次
仿真速度 慢 快(可快约 300 倍,配合事件驱动)
书写复杂度 高 低
灵活性/复用性 差 好
适用场景 器件/电路级精确仿真 系统级、行为级、IP 建模

WREAL(了解)

仿真工具

工具 厂商 说明
Spectre / AMS Cadence 最早支持 Verilog-A,支持最全面
ELDO / ADMS Mentor 支持 Verilog-A
Hspice Synopsys 需 Hspice_va 额外 License
ngspice 开源 ADMS 转换 Verilog-A→C
Qucs 开源 支持 Verilog/VHDL/Verilog-A
Symica 免费商业 受限免费版

ADMS(Automated Device Model Synthesizer)可将 Verilog-A/AMS 转 C 代码供类 SPICE 仿真器使用。

何时使用混合信号描述(作者建议)

  1. 数字功能模块 → 直接用 Verilog/VHDL,不用混合信号。
  2. 高层大模块 → 不推荐混合信号(易错、精度缺失)。
  3. 模块内部混合 → 认真考虑哪些网线/端口定义为数字信号及其收益。
  4. 数模混合描述代价:需额外连接模块、丢失数字域模拟特性(延时/噪声/摆率)、学习成本。

关键字速查

Verilog-A 关键字包含但不限于:module/endmodule、analog、input/output/inout、electrical、parameter、integer/real、genvar、branch、analog function/endfunction、if/else/case、for/while/repeat、@(cross/above/timer/initial_step/final_step/absdelta)、<+(贡献运算符)、ddt/idt/idtmod/ddx、laplace_nd/zp/zd/np、zi_zp/zd/np/nd、limexp、transition/slew/absdelay、wreal、nature/discipline/potential/flow 等。

完整清单见附录(吴顺珉书附录 A),共 200+ 个。

参考来源

相关笔记